﻿using System;
using GeneralDFS.DataEntity.Enum;
using GeneralDFS.DataEntity.Config;
using GeneralDFS.Interface.Nodes;

namespace GeneralDFS.BusinessLogical.Nodes
{
    public class CreateNode
    {
        public static IBaseNode Create(DFSConfig config,object nodeConfig, String nodeType)
        {
            return nodeType == NodeType.NameNode ? CreateNameNode(config,(NameNodeConfig)nodeConfig) : CreateDataNode(config,(DataNodeConfig)nodeConfig);
        }

        public static IBaseNode CreateNameNode(DFSConfig config, NameNodeConfig nameNodeConfig)
        {
            var node = new NameNode();
            node.ConfigNode(nameNodeConfig);
            node.Config = config;
            return node;
        }

        public static IBaseNode CreateDataNode(DFSConfig config, DataNodeConfig dataNodeConfig)
        {
            var node = new DataNode();
            node.ConfigNode(dataNodeConfig);
            node.Config = config;
            return node;
        }
    }
}
